package com.zw.a.basic.a07.demo13_tostring;

/*
    结论:
        1. 输出语句打印对象, 默认就调用了该对象的 toString()方法.
        2. 如果对象没有重写toString(), 则默认调用的是Object类的toString()方法.
        3. 而Object类的toString()方法默认打印的是该对象的地址值, 无意义, 子类一般都会重写该方法.
        4. 重写规则: 快捷键生成.
 */
public class StudentTest {
    public static void main(String[] args) {
        //1. 创建学生类对象.
        Student s1 = new Student("刘亦菲", 33, "女", "lyf@itcast.cn");
        //2. 打印学生对象(的各个属性值)
        System.out.println(s1.getName() + "..." + s1.getAge() + "..." + s1.getSex() + "..." + s1.getEmail());
        System.out.println(s1.show());     //调用自定义的show()方法, 打印对象的各个属性值.

        System.out.println("-------------------------");
        //调用重写后的toString()方法, 来打印对象的属性值.
        System.out.println(s1.toString());
        //上述的代码可以简化成如下的写法, 即: toString()方法可以省略不写.
        //因为输出语句打印对象, 默认就调用了该对象的 toString()方法
        System.out.println(s1);

        System.out.println("-------------------------");
        Teacher t1 = new Teacher();
        t1.name = "夯哥";
        t1.age = 18;
        System.out.println(t1);
        System.out.println(t1.toString());

    }
}
